﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.Logica.Clases
{
    public class Practica
    {
        #region Atributos clase Practica

        private int _numeroSeccion;
        private string _nombrePractica;
        private List<HorarioDeClase> _horarioDeClase;
        private Profesor _profesor;
        private string _statusPractica;
        private int _idPractica;
        private SqlServerPractica _sqlServerPractica = new SqlServerPractica();

        #endregion

        #region Constructor

        public Practica(int numeroSeccion, string nombrePractica)
        {
            NumeroSeccion=numeroSeccion;
            NombrePractica=nombrePractica;

        }

        public Practica()
        {
            // TODO: Complete member initialization
        }

        #endregion

        #region Getters y Setters

        public List<HorarioDeClase> horarioDeClase
        {
            get { return _horarioDeClase; }
            set { _horarioDeClase = value; }
        }
        public String statusPractica
        {
            get { return _statusPractica; }
            set { _statusPractica = value; }
        }
       
        public Profesor profesor
        {
            get { return _profesor; }
            set { _profesor = value; }
        }
        public int NumeroSeccion
        {
            get { return _numeroSeccion; }
            set { _numeroSeccion=value; }
        }

        public int IdPractica
        {
            get { return _idPractica; }
            set { _idPractica = value; }
        }

       

        public string NombrePractica
        {
            get { return _nombrePractica; }
            set {_nombrePractica=value; }
        }

        #endregion

        #region Metodos de Practica

        public void CrearPractica(Practica practica, int idSeccionMateria, List<HorarioDeClase> horario,List<Salon> salones)
        {
            practica._idPractica=_sqlServerPractica.UltimoIdPractica()+1;
            practica._statusPractica = "Activo";
            _sqlServerPractica.AgregarPractica(practica, idSeccionMateria);

            for (int i = 0; i < horario.Count; i++)
            {
                horario[i].SalonDeClase.NumeroSalon = salones[i].NumeroSalon;
                _sqlServerPractica.AgregarHorarioClase(horario[i],practica._idPractica);
            }
            
                        
        }

        

        

        public bool ValidarNombrePractica(int  numeroSeccionMateria ,String nombreSeccionPractica)
        {
            bool encontrado = _sqlServerPractica.VerificarNombrePractica(nombreSeccionPractica, numeroSeccionMateria);

            if (encontrado == true)
            { return false; }
            else
            { return true; }
        }

        public bool ValidarSeccionPractica(int numeroSeccionMateria, int numeroSeccionPractica)
        {
            bool encontrado = _sqlServerPractica.VerificarSeccionPractica(numeroSeccionPractica, numeroSeccionMateria);

            if (encontrado == true)
            { return false; }
            else
            { return true; }
        }
        
        public void ModificarSalonPractica(int idPractica,string dia,string salon)
        {
            _sqlServerPractica.ModificarSalon(idPractica, dia, Convert.ToInt32(salon));
        }

        public void ModificarHorarioPractica(DateTime horaInicio,DateTime horaFin,string dia,int idPractica)
        {
            _sqlServerPractica.ModificarHorarioPractica(horaInicio,horaFin,dia,idPractica);
        }
        
        public void EliminarSeccionPractica(int numeroSeccion)
        {
        }
        
        public void ConsutarSeccionPractica(int numeroSeccionPractica)
        {
        }
        
        public void AsignarHorario(DateTime inicio,DateTime fin,DateTime fecha)
        {
            
        }
        
        public void ConsultarHorario(DateTime inicio, DateTime fin, DateTime fecha)
        {
        }
        
        public void SolicitarProfesor()
        {
        }

        #endregion
        
    }
}
